package com.Exception;
//用throws(抛出异常)进行异常处理
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
public class ExceptionDemo3 {
    public static void main(String[] args) {
        System.out.println("开始");
        try {
            method1();
        }catch(ParseException pe){
            pe.printStackTrace();
        }
        method2();
        System.out.println("结束");
    }
    //编译时异常:
    public static void method1() throws ParseException/*仅仅是将异常抛出，并没有进行实际处理*/{
            String s = "2022-03-23";
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Date d = sdf.parse(s);
            System.out.println(d);
    }
    //运行时异常
    public static void method2() throws ArrayIndexOutOfBoundsException {
            int[] arr = {1, 2, 3, 4};
            System.out.println(arr[4]);
            //若不进行异常处理，可修改代码如下：
            //System.out.println(arr[3]);
    }
    /*后续并没有输出异常，所以throws并不是真正的处理，而是抛出异常，
    要想程序继续进行下去还要进行try-catch处理。
    * */
}

/*总结:
* 1.编译时异常必须要处理，可以用try-catch或throws，如果用throws，谁调用谁处理
* 2.运行时异常可以不处理。处理它意义不大，因为最终我们是要修改代码的*/

